<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01 字符串</title>
    <style>
        h1 {
            text-align: center;
        }
    </style>
</head>
<body>
    <h1>01 字符串</h1>
</body>
<script>
    /* 
        字符串： 
            * 声明：
                * 字面量  var str = 'hi'
                * 构造函数  var str = new String('hello')
            * 属性： length （可读不可写）
            * 方法：
                * charAt(3): 获取下标为3的字符
                * indexOf(): 从头开始查找字符串keyword第一次出现的位置，如果没有找到返回-1
                * substring(start[,end]): 不包括end所在字符，end省略表示截取到最后
                * substr(start[,len]): 支持负数，len为截取的数量
                * slice(start[,end]): 截取start到end（不包括end）的字符串，支持负数
                * split(): 把字符串切割变成数组
                * toLowerCase(): 转换成小写
                * toUpperCase(): 转换成大写
                * charCodeAt(3): 获取下标为3的字符的ASCII
                * String.fromCharCode(94): 编译码转成字符
                * 
    */

    // 字面量
    var str = '宋雨琦';
    console.log(str.length); // 无论是数字、字母、符号、空格、汉字都是占一个长度

    // 找值
    console.log(str.charAt(2)); // 通过下标找到对应的字符，只能找一个
    console.log(str[2]); // ES5新增

    // 循环： while / do while / for / for in 
    for (var i in str) { // 遍历字符串
        console.log(str[i]);
    };

    // 需求：查找一组数据中，7的倍数和包含7的数
    var arr = [1, 7, 14, 8, 21, 17];

    arr.forEach( item => {
        var num = String(item);
        if (item % 7 == 0 || num.indexOf(7) != -1) {
            console.log('满足条件的值' + item);
        }
    });

    /*
                
        * substring(start[,end]): 不包括end所在字符，end省略表示截取到最后
        * substr(start[,len]): 起始坐标支持负数，len为截取的数量
        * slice(start[,end]): 截取start到end（不包括end）的字符串，支持负数
        
    */

    var str2 = 'citytaolushen';

    console.log(str2.substring(2, 5)); // tyt 从下标2到5不包括5
    console.log(str2.substr(2, 5)); // tytao 从下标2开始往后截取5位
    console.log(str2.slice(2, -2)); // tytaolush 终点坐标可以为负数

    // 1&2&3& 
    // join() 把数组拼接成字符串
    var str3 = '1&2&3&';
    var newstr = str3.slice(0, -1);
    var arr = newstr.split('&'); // 把字符串切割变成数组
    console.log(arr);


</script>
</html>